//-----------------------------------------------------------------------------
// Bend2D - Physics Engine
// Roberto Bender <beto.bender@gmail.com>
// Description: 
// Date: 15/03/2010
//-----------------------------------------------------------------------------
#ifndef FACTORY_H
#define FACTORY_H

#include "objectcreator.h"
#include "dummyobjectcreator.h"
#include <memory>

using namespace std;
namespace bend2d
{
    class Factory
    {
    public:
        static Factory* GetInstance();
        void RegistryObjectCreator(ObjectCreator* creator);
        ObjectCreator* AccessObjectCreator() const;
    private:
        static auto_ptr<Factory> m_Instance;
        static DummyObjectCreator m_DummyObjectCreator;
        ObjectCreator* m_ObjectCreatorDelegation;
        Factory();
    };
}

#endif
